﻿using System;
using System.Collections.Generic;
using Meqs.Entity;
using Meqs.Entity.Views;

namespace Meqs.Logic.Interface
{
    public interface IStuCausePersonCatchLogic : ICommonLogic<StuCausePersonCatch, int>
    {
        /// <summary>
        /// 插入记录
        /// </summary>
        /// <param name="spc"></param>
        /// <param name="schoolMark"></param>
        /// <returns></returns>
        int InsertStuCausePersonCatch(StuCausePersonCatch spc, string schoolMark);

        /// <summary>
        /// 删除缓存表中对应单据及学生的记录
        /// </summary>
        /// <param name="studentID"></param>
        /// <param name="recordID"></param>
        /// <param name="schoolMark"></param>
        /// <returns></returns>
        int DeleteStuCausePersonCatch(int studentID, int recordID, string schoolMark);


         /// <summary>
        /// 获取学分查询记录
        /// </summary>
        /// <param name="schoolMark"></param>
        /// <param name="grade"></param>
        /// <param name="clsId"></param>
        /// <param name="schoolYear"></param>
        /// <param name="term"></param>
        /// <returns></returns>
        IList<CreditReport> GetCreditReport(string schoolMark, int grade, int clsId, int schoolYear, int term);


         /// <summary>
        /// 获取学分查询记录，查询学分最终结果
        /// </summary>
        /// <param name="schoolMark"></param>
        /// <param name="grade"></param>
        /// <param name="clsId"></param>
        /// <param name="schoolYear"></param>
        /// <param name="term"></param>
        /// <returns></returns>
        IList<CreditReportView> GetCreditReportView(string schoolMark, int grade, int schoolYear, int term,int causeId);

        IList<CreditReport> GetCreditByMonth(String schoolMark, int clsID, int schoolYear, int term, DateTime startDate, DateTime endDate);

        /// <summary>
        /// 学生成长档案
        /// </summary>
        IList<CreditHistory> GetStudentHistoryReport(string schoolMark, int stuID);

        /// <summary>
        /// 毕业学生各科学分
        /// </summary>
        /// <returns></returns>
        IList<GraduationScore> GetGraduationScore(string schoolMark, int clsID);

        ///// <summary>
        ///// 毕业德育学分
        ///// </summary>
        ///// <param name="schoolMark"></param>
        ///// <param name="clsID"></param>
        ///// <returns></returns>
        //IList<GraduationScore> GetGraduationTestScore(string schoolMark, int clsID);
    }
}